package com.ddxz.middleground.meta.service;

import com.ddxz.middleground.meta.dto.MetaHeader;
import com.ddxz.middleground.meta.dto.object.BaseObjectInfo;
import com.ddxz.middleground.meta.dto.source.SourceInfo;
import com.ddxz.middleground.meta.dto.source.SourcePage;
import com.ddxz.tool.web.dto.DdxzResponse;

/**
 * interface description
 *
 * @author 朱宗刚
 * @version 1.0.0
 * @date 2020/8/21
 */

public interface SourceService {
    /**
     * 保存数据源信息
     *
     * @param header     请求头信息
     * @param sourceInfo 数据源信息
     * @return 是否保存成功
     */
    DdxzResponse sourceSave(MetaHeader header, SourceInfo sourceInfo);

    /**
     * 移除数据源信息
     *
     * @param header   请求头信息
     * @param sourceId 数据源标识
     * @return 是否移除成功
     */
    DdxzResponse sourceRemove(MetaHeader header, String sourceId);

    /**
     * 分页检索数据源信息
     *
     * @param header 请求头信息
     * @param page   检索参数
     * @return 数据源清单
     */
    DdxzResponse sourceList(MetaHeader header, SourcePage page);

    /**
     * 数据源详情
     *
     * @param header   请求头信息
     * @param sourceId 数据源标识
     * @return 数据源信息
     */
    DdxzResponse sourceDetail(MetaHeader header, String sourceId);

    /**
     * 测试数据源是否正常可用
     *
     * @param header   请求头信息
     * @param sourceId 数据源标识
     * @return 数据源正确与否
     */
    DdxzResponse sourceTest(MetaHeader header, String sourceId);

    /**
     * 设定数据源的运行状态
     *
     * @param header   请求头信息
     * @param sourceId 数据源标识
     * @param state    运行状态
     * @return 是否设定成功
     */
    DdxzResponse setState(MetaHeader header, String sourceId, Integer state);
}
